package com.hzlj.position.config.common.model;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fz.common.base.core.JacksonTypeHandlerIgnoreNull;
import com.hzlj.position.config.common.dto.noticeConfig.InitiativeNoticeExtDTO;
import com.hzlj.position.config.common.dto.noticeConfig.InspectionNoticeExtDTO;
import lombok.Data;
import lombok.ToString;

import java.util.Date;
import java.util.List;

/**
 * 通知配置(NoticeConfig)实体类
 *
 * @author makejava
 * @since 2024-08-27 14:19:15
 */
@Data
@ToString
@TableName(value="notice_config",autoResultMap = true)
public class NoticeConfig {
    /**
    * 机构code
    */
    @TableId(type = IdType.INPUT,value = "jg_code")
    private String jgCode;
    /**
    * job处理器
    */
    @TableField(value = "warning_jzry_notice_types",typeHandler = JacksonTypeHandlerIgnoreNull.class)
    private List<String> warningJzryNoticeTypes;
    /**
    * 定位异常通知-工作人员，jsonarray-String
    */
    @TableField(value = "warning_gzry_notice_types",typeHandler = JacksonTypeHandlerIgnoreNull.class)
    private List<String> warningGzryNoticeTypes;
    /**
    * 是否需要纠偏
    */
    @TableField(value = "correct_notice")
    private Boolean correctNotice;
    /**
    * 是否需要补签(人脸签到)
    */
    @TableField(value = "complement_notice")
    private Boolean complementNotice;
    /**
    * 自动核查最大延迟时间
    */
    @TableField(value = "report_auto_delay_minutes")
    private Integer reportAutoDelayMinutes;
    /**
    * 人工核查最大延迟时间
    */
    @TableField(value = "report_artificial_delay_minutes")
    private Integer reportArtificialDelayMinutes;
    /**
    * 位置确认最大延迟时间
    */
    @TableField(value = "track_check_delay_minutes")
    private Integer trackCheckDelayMinutes;
    /**
    * 位置纠偏最大延迟时间
    */
    @TableField(value = "correct_delay_minutes")
    private Integer correctDelayMinutes;
    /**
    * 运营商异常最大延迟时间
    */
    @TableField(value = "position_check_delay_minutes")
    private Integer positionCheckDelayMinutes;
    /**
    * 消息通知角色，jsonarray-String
    */
    @TableField(value = "default_message_notice_auths",typeHandler = JacksonTypeHandlerIgnoreNull.class)
    private List<String> defaultMessageNoticeAuths;
    /**
    * 人脸签到配置,json-InitiativeNoticeExtDTO
    */
    @TableField(value = "initiative_notice_ext",typeHandler = JacksonTypeHandlerIgnoreNull.class)
    private InitiativeNoticeExtDTO initiativeNoticeExt;
    /**
    * 核验签到配置,json-InspectionNoticeExtDTO
    */
    @TableField(value = "inspection_notice_ext",typeHandler = JacksonTypeHandlerIgnoreNull.class)
    private InspectionNoticeExtDTO inspectionNoticeExt;
    /**
    * 创建时间
    */
    @TableField(value = "create_time")
    private Date createTime;
}
